Executable application network impact and load characteristic estimation system

ABSTRACT

A network guidelines estimator (NGE) estimates a network load for each software application operating in a test network to determine network load metrics for each software application. A network load estimator (NLE) estimates a network load for one or more software applications concurrently operating in a production network responsive to the network load metrics of each of the one or more software applications. A network load analyzer (NLA) analyzes the network load for the one or more software applications concurrently operating in the production network to determine an actual network load for the production network.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] The present application is a non-provisional application ofprovisional application having serial No. 60/351,042 filed by Ed McBrideon Jan. 22, 2002, and of provisional application having serial No.60/366,507 filed by Ed McBride on Mar. 21, 2002.

FIELD OF THE INVENTION

[0002] The present invention generally relates to a system, method,computer product, and user interface for estimating network loademployed by one or more software applications. More particularly, thepresent invention relates to a system, method, computer product, anduser interface supporting estimating network load used by multipleconcurrently operating executable software applications.

BACKGROUND OF THE INVENTION

[0003] Network capacity planning is a process of measuring a networksability to serve content to its users at an acceptable speed. Theprocess involves measuring the number of active users and by how muchdemand each user places on the server, and then calculating thecomputing resources that are necessary to support the usage levels.

[0004] Two key elements of network capacity performance are bandwidthand latency. Bandwidth is just one element of what a person perceives asthe speed of a network. Another element of speed, closely related tobandwidth, is latency. Latency refers generally to delays in processingnetwork data, of which there are several kinds. Latency and bandwidthare related to each other. Whereas theoretical peak bandwidth is fixed,actual or effective bandwidth varies and can be affected by highlatencies. Too much latency in too short a time period can create abottleneck that prevents data from “filling the pipe,” thus decreasingeffective bandwidth. Businesses use the term Quality of Service (QoS) torefer to measuring and maintaining consistent performance on a networkby managing both bandwidth and latency.

[0005] Prior network capacity systems, either analytical and/or discreetevent simulation tools, import a limited amount of live applicationtraffic patterns to drive a model of user's network configurations. Tovalidate a pre-existing network traffic model, a network analyst needsto compare two simulation runs and spend considerable time adjusting thepre-existing simulated traffic patterns to match the network load of theimported live traffic patterns. The effort to perform this task ischallenging and is not usually attempted. Importing production trafficpatterns, using trace files, is limited with respect to time coverage.It would be very difficult to import a series of trace files coveringall the peak hours of traffic activity over several weeks. It would alsovery difficult to identify and compare the simulated traffic with realproduction traffic in order to adjust the simulated patterns to allowfor future simulation runs that can predict what affect new clients willhave on network bandwidth requirements. Hence, using these tools formultiple applications is very time consuming, expensive and not usableby average individuals typically in the position to do network sizingand performance estimates.

[0006] Accordingly, there is a need for a system, method, computerproduct, and user interface supporting estimating network load used bymultiple concurrently operating executable software applications.

SUMMARY OF THE INVENTION

[0007] A network guidelines estimator (NGE) estimates a network load foreach software application operating in a test network to determinenetwork load metrics for each software application. A network loadestimator (NLE) estimates a network load for one or more softwareapplications concurrently operating in a production network responsiveto the network load metrics of each of the one or more softwareapplications. A network load analyzer (NLA) analyzes the network loadfor the one or more software applications concurrently operating in theproduction network to determine an actual network load for theproduction network.

[0008] These and other aspects of the present invention are furtherdescribed with reference to the following detailed description and theaccompanying figures, wherein the same reference numbers are assigned tothe same features or elements illustrated in different figures. Notethat the figures may not be drawn to scale. Further, there may be otherembodiments of the present invention explicitly or implicitly describedin the specification that are not specifically illustrated in thefigures and visa versa.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 illustrates a network, including a server electricallycoupled to a plurality of client/workstations, in accordance with apreferred embodiment of the present invention.

[0010]FIG. 2 illustrates a process for determining network load employedby one or more applications concurrently operating in the network, asshown in FIG. 1, in accordance with a preferred embodiment of thepresent invention.

[0011]FIG. 3 illustrates a network load estimator (NLE), including amain entry user interface (MEUI), a networked application user interface(NAUI), and an analytical engine, employed by the server of FIG. 1, inaccordance with a preferred embodiment of the present invention.

[0012]FIG. 4 illustrates MEUI window field details for the MEUI of FIG.3, in accordance with a preferred embodiment of the present invention.

[0013]FIG. 5 illustrates NAUI window field details for the NAUI of FIG.3, in accordance with a preferred embodiment of the present invention.

[0014]FIG. 6 illustrates a process for defining an application NAUI, asshown in FIGS. 3 and 5, in accordance with a preferred embodiment of thepresent invention.

[0015]FIG. 7 illustrates a process for configuring an application for acapacity planning study for the NLE of FIG. 3, in accordance with apreferred embodiment of the present invention.

[0016]FIG. 8 illustrates a process for reporting analysis results in theMEUI's global results window and in the NAUI's results window by theanalytical engine of FIG. 3, in accordance with a preferred embodimentof the present invention.

[0017]FIG. 9 illustrates a network load analyzer, employed by the serverof FIG. 1, in accordance with a preferred embodiment of the presentinvention.

[0018]FIG. 10 illustrates a trace analyzer process for each trace file,performed by the trace analyzer of FIG. 9, in accordance with apreferred embodiment of the present invention.

[0019]FIG. 11 illustrates a single output trace file display, providedby the trace analyzer of FIG. 9, in accordance with a preferredembodiment of the present invention.

[0020]FIG. 12 illustrates a complete output trace file summary display,provided by the load and concurrency analyzer of FIG. 9, in accordancewith a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0021]FIG. 1 illustrates a network 100, including a server 101electrically coupled to a plurality of client/workstations 102, 103, and104 via a communication path 106, in accordance with a preferredembodiment of the present invention.

[0022] The network 100, otherwise called a computer network or an areanetwork, may be implemented in many different shapes and sizes. Examplesof networks 100 include, without limitation and in any combination, aLocal Area Network (LAN), a Wide Area Network (WAN), a Metropolitan AreaNetwork (MAN), a Storage Area Network (SAN), a System Area Network(SAN), a Server Area Network (SAN), a Small Area Network (SAN), aPersonal Area Network (PAN), a Desk Area Network (DAN), a ControllerArea Network (CAN), a Cluster Area Network (CAN). Hence, the network 100may have any number of servers 101 electrically coupled to any number ofclient/workstations 102, 103, and 104 over any type of communicationpath 106 over any distance. Preferably, the network 100 is a WAN.

[0023] Generally, network descriptions, such as LAN, WAN, and MAN, implythe physical distance that the network spans or a distance-basedconcept. However, present and anticipated technology changes, via theInternet, intranet, extranet, virtual private network, and othertechnologies, now imply that distance is no longer a usefuldifferentiator between the various networks. However, for the sake ofconsistency, these other types of network also became known as varioustypes of networks.

[0024] For example, a LAN connects network devices over a relativelyshort distance. A networked office building, school, or home usuallycontains a single LAN, though sometimes one building will contain a fewsmall LANs, and occasionally a LAN will span a group of nearbybuildings. In Internet Protocol (IP) networking, one can conceive of aLAN as a single IP subnet (though this is not necessarily true inpractice). Besides operating in a limited space, LANs typically includeseveral other distinctive features. LANs are typically owned,controlled, and managed by a single person or organization. They alsouse certain specific connectivity technologies, primarily Ethernet andToken Ring.

[0025] Further, by example, a WAN spans a large physical distance. A WANimplemented as the Internet spans most of the world. A WAN is ageographically dispersed collection of LANs. A network device called arouter connects LANs to a WAN. In IP networking, the router maintainsboth a LAN address and a WAN address. WANs typically differ from LANs inseveral ways. Like the Internet, most WANs are not owned by any oneorganization but rather exist under collective or distributed ownershipand management. WANs use technology like leased lines, cable modems,Internet, asynchronous transfer mode (ATM), Frame Relay, and X.25 forconnectivity. A WAN spans a large geographic area, such as a state,province, or country. WANs often connect multiple smaller networks, suchas LANs or MANs. The most popular WAN in the world today is theInternet. Many smaller portions of the Internet, such as extranets, arealso WANs. WANs generally utilize different and much more expensivenetworking equipment than do LANs. Technologies sometimes found in WANsinclude synchronous optical network (SONET), frame relay, and ATM.

[0026] The server 101 generally includes a user interface 107, a memoryunit 108, and a processor 109. The memory unit 108 generally includessoftware applications (“applications”) 112. The user interface 107generally includes an output device 110 and an input device 111.

[0027] The server 101 may be implemented as, without limitation, acomputer, a workstation, a personal computer, a handheld computer, adesktop computer, a laptop computer, and the like. The server 101 may bemobile, fixed, or convertible between mobile and fixed, depending on theparticular implementation. Preferably, the server 101 is a computeradapted for a fixed implementation.

[0028] The processor 109, otherwise called a central processing unit(CPU) or controller, controls the server 101. The processor 109executes, retrieves, transfers, and decodes instructions overcommunication paths, internal or external to the server 101, that areused to transport data to different peripherals and components of theserver 101. The processor 109 includes a network guidelines estimator(NGE) 115, a network load estimator (NLE) 116, and/or a network loadanalyzer (NLA) 117, or an interface to each of the same elements 115,116, and 117 located outside the server 101, but communicating with theprocessor 109, such as via the communication path 106. Each of theelements 115, 116, and 117 may be employed in hardware, software, and acombination thereof. Preferably, each of the elements 115, 116, and 117is individually employed in the same or different networks 100 at thesame or different times, as describe in further detail herein.

[0029] The memory unit 108 includes without limitation, a hard drive,read only memory (ROM), and random access memory (RAM). The memory unit108 is a suitable size to accommodate the applications 112, and allother program and storage needs, depending on the particularimplementation. The applications 112, otherwise called executable codeor executable applications, are preferably application specific provider(ASP) executable applications deployed over a WAN.

[0030] In the user interface 107, the input device 111 permits a user toinput information into the server 101 and the output device 110 permitsa user to receive information from the server 101. Preferably, the inputdevice is a keyboard, but also may be a touch screen, a microphone witha voice recognition program, for example. Preferably, the output deviceis a display, but also may be a speaker, for example. The output deviceprovides information to the user responsive to the input devicereceiving information from the user or responsive to other activity bythe server 101. For example, the display presents information responsiveto the user entering information in the server 101 via the keypad. FIGS.4, 5, 11, and 12 illustrate examples of the user interface 107.

[0031] The server 101 may also contain other elements, well known tothose skilled in the relevant art, including, without limitation, a datainput interface and a data output interface providing communicationports that permit data to be received by and sent from, respectively,the server 101. The data input interface and the data output interfacemay be the same interface, permitting bi-directional communication, ordifferent interfaces, permitting opposite, unidirectional communication.Examples of the data input interface and the data output interfaceinclude, without limitation, parallel ports, and serial ports, such as auniversal serial bus (USB). Each of the elements 115, 116, and 117 maycommunicate with the server 101 using the data input interface and thedata output interface, when the elements 115, 116, and 117 are locatedoutside of the server 101.

[0032] Each of the client/workstations (“client”) 102, 103, and 104 maybe implemented as, without limitation, a computer, a workstation, apersonal computer, a handheld computer, a desktop computer, a laptopcomputer, and the like. Each of the clients 102, 103, and 104 may bemobile, fixed, or convertible between mobile and fixed, depending on theparticular implementation. Preferably, each of the clients 102, 103, and104 are adapted for a fixed implementation.

[0033] The communication path 106 electrically couples the server 101 toeach of the clients 102, 103, and 104. The communication path 106 may bewired and/or wireless or accommodate the fixed and/or mobile server 101or clients 102, 103, and 104, respectively. Examples of wiredcommunication paths include, without limitation, LANs, leased WANcircuits, ATM, frame relay. Examples of wireless communication pathsinclude, without limitation, wireless LANs, microwave links, satellite.Preferably, the communication path 106 is wired.

[0034] The network 100 may also include an external memory unit 113 forstoring software applications 112. The external memory unit 113 mayinclude, without limitation, one or more of the following: a hard drive,read only memory (ROM), and random access memory (RAM). The externalmemory unit 113 is a suitable size to accommodate the applications 112,and all other program and storage needs, depending on the particularimplementation. The external memory unit 113 may be used in cooperationwith or as a substitute for the memory unit 108 in the server 101,depending on the particular implementation of the server 101, and thenetwork 100.

[0035] Computer readable product 114, preferably a computer readablestorage medium, comprises a disk (such as a compact disk (CD), forexample, or other portable storage medium containing the executableapplication 112 for insertion or downloading in memory unit 108 orexternal memory unit 113.

[0036]FIG. 2 illustrates a process 200 for determining network loademployed by one or more applications 112 concurrently operating in thenetwork 100, as shown in FIG. 1, in accordance with a preferredembodiment of the present invention.

[0037] The process 200, otherwise called a method, begins at step 201.

[0038] At step 202, the network guidelines estimator (NGE) 115, shown inFIG. 1, estimates a network load for each software application operatingin a simulated network to determine network load metrics for eachsoftware application. The structure and function of the networkguidelines estimator (NGE) 115 is described in detail in provisionalapplication having serial No. 60/366,507 filed by Ed McBride on Mar. 21,2002.

[0039] The delivery of an application 112 on a network 100 is typicallysuccessful when application's network behavior is reasonablycharacterized, especially for a WAN. The characteristics of theapplications are determined by testing them in a controlled networkenvironment, otherwise called a simulated or test network, to determinethe application's network behavior. This process is called applicationnetwork baseline profiling.

[0040] Preferably, application network baseline profiling is performedin a controlled test environment having the following three conditions:

[0041] 1. The server(s) 101 and the clients 102-104 are on a LAN.

[0042] 2. The network traffic between all application components isvisible on the LAN at a single network location when the client executesa function of the application 112.

[0043] 3. One client (i.e., a test client) is using the server(s) 101.Two network tools are used to perform the application network baselineprofiling.

[0044] 1. A conventional third party software tool, such as ApplicationExpert ™ tool, captures the application's network traffic when the testclient executes application functions.

[0045] 2. The NGE 115 uses information from Application Expert tool tocalculate the application's network load and latency parameters andother metrics that profile the application's network behavior.

[0046] The following text under step 202 describes the process forprofiling an application's network load characteristics, a process toprofile an application's network latency performance, and a process toestimate a networks capacity requirements when deploying multiple userclients over a WAN responsive to the application's network loadcharacteristics. The following description references the followingdefinitions:

[0047] 1. Concurrent users: Clients of the application that are active(i.e., generating network traffic) in any given predetermined (e.g.,one-minute) time interval.

[0048] 2. Active users: Number of clients that are logged on to theapplication at a given time using the system at an ordinary pace (i.e.,executing functions, making on-line updates and selections, andreviewing and evaluating screen information, etc.).

[0049] 3. Deployed users: Clients with the application installed.

[0050] 4. Task: Individual application functions executed to accomplisha specific task (i.e., a sub-unit of work).

[0051] 5. Work Unit: A sequence of tasks executed to complete a unit ofwork that the application was designed to accomplish. Applicationsgenerally have many types of work units.

[0052] The process for profiling an application's network loadcharacteristics is described as follows. One characteristic of anapplication's network load is a load factor. The load factor is thecalculation of the average network load that a user of a particularapplication generates while using an application. The load factor iscalculated using the following information:

[0053] 1. List of work units that users can execute when using anapplication.

[0054] 2. List of all tasks (i.e., application functions) that make upeach work unit.

[0055] 3. Frequency of use of each work unit, if this is practical todetermine or estimate.

[0056] Preferably, at least 95% of the application's typical work unitsare tested in the test network, by capturing the network trafficgenerated while a test client executes each work unit. A separatecapture file is saved for each work unit.

[0057] Testing involves measuring the network load placed on the LAN inthe controlled laboratory environment using the conventional third partysoftware tool. Preferably, a person (i.e., a test user) with experiencein use of the application manually conducts the test to collect accuratemeasurements. Alternatively, the test may be performed automatically.The experienced user executes the work units at the approximate speed ofa predicted end user, including computer processing time and user thinktime. The executed work units are used for profiling the work units toobtain a reasonable network load factor (LF) and a completion time for awork unit (i.e., the work unit completion time) (WCT). The application'snetwork load factor and work unit completion time are also used by theNLE 116 to estimate how many user workstations can be deployed on a WAN,as described herein below.

[0058] After the application is tested, the network traffic informationstored in each work unit capture file is imported into the NGE 115. TheNGE then calculates the application's network load factor, whichspecifies the average amount of network capacity (i.e., bandwidth) usedwhen a user is executing work units. The network load factor relates tothe application's network load profile and how network friendly it is.

[0059] The NGE 115 uses the network load factor to determine aconcurrency factor (CF), which specifies the maximum number ofconcurrent users a network can support before reaching somepredetermined threshold capacity that identifies the limit or breakpointof the network. For example, if a network has a recommendedpredetermined threshold capacity of 60% capacity and an application hasa network load factor of 2%, the concurrency factor is 30 (i.e.,60%/2%). The concurrency factor indicates that 30 concurrent users willrequire 60% of the network capacity.

[0060] The NGE 115 uses the concurrency factor and the work unitcompletion time to estimate the total number of deployable clients thatthat a production network 100 can support. By accurately estimating thenumber of concurrent users that need to be accommodated during peaktime, the network load information can be used to properly size andconfigure a production network 100.

[0061] The following text under step 202 describes the process fordetermining an application's network latency profile. Since tasks aresub-units of work, a user executing application tasks is sensitive toresponse time. For example, after a user presses the enter key to startthe execution of a task, the user may be expecting a completed responsewithin two seconds. If the user's workstation 102-104 is on the same LANthat the server 101 is on, the response may come back in one second.Most of this time would be server 101 and workstation 102-104 processingtime. Very little of this time would be due to the network latency (NL)of the LAN. However, if the user's workstation 102-104 is separated fromthe server 101 by a WAN, network latency can contribute to a significantdelay. An application's performance characteristics can be determined,by testing the application tasks and by using the NGE 115 to profile theapplication's network latency metrics.

[0062] Three components to latency that cause network response delayinclude:

[0063] 1. Insertion or Transmission Delay—caused by the speed of the LANor WAN.

[0064] 2. Propagation Delay—dictated by the distance data has to travelover the network.

[0065] 3. Queue Delay—Delay due to congestion from sharing a networkamong multiple users. This is why a network needs a predeterminedcapacity threshold.

[0066] To profile an application's network latency characteristics, theconventional third party software tool individually tests each taskexecuted when testing the work units. During these tests, the networktraffic generated is captured in a network trace file, wherein there isone network trace file for each task. The network trace files areimported into the NGE 115, which calculates the parameters that producethe application's average network latency metric. The NGE 115 alsoproduces a detailed listing of each task identifying the task's specificnetwork latency.

[0067] The NGE 115 also provides latency parameters that are importedinto the NLE 116, which is used to estimate the aggregate effect on oneapplication 112 when sharing a network 100 with additional applications112. The following parameters are averages over all tested tasks.

[0068] 1. Average task traffic size in bytes.

[0069] 2. Average number of request/response pairs. These are calledapplication turns that interact with a WAN's propagation delay (i.e.,distance). Any application task that has a large number of turns willsuffer large network latencies, which cannot be reduced by increasingthe WAN's bandwidth (speed).

[0070] 3. Average size of the data frames used to send data over thenetwork.

[0071] 4. Application workload and estimating workstation deployment.

[0072] The following text under step 202 describes the process toestimate a network's capacity requirements when deploying multipleclients over a WAN, otherwise called workload. The term workload refersto the number of work units (WU) completed in a predetermined (e.g., onehour) time period (i.e., a peak hour). The NGE 115 calculates a metriccalled the application's work unit completion time (WCT). The work unitcompletion time is an average value of all WUs tested, which is adjustedto a 95% confidence value based on the variance of all work unitstested.

[0073] To estimate, on average, the maximum number of WUs completed inone hour, when each one-minute interval has, on average, one useractive, divide sixty minutes by the WCT. As mentioned above, each unitvalue of concurrency factor (CF) is equal to one user active in anyone-minute interval. Hence, the maximum workload a network 100 cansupport before exceeding the network's capacity threshold is theconcurrency factor (CF) value times sixty minutes divided by WCT.

[0074] For example, if WCT is two minutes, then the maximum WUs per hourfor a CF value of one is thirty (i.e., 60/2). If network's concurrencyfactor (CF) value equals ten, then three hundred WUs per hour can besupported. A question for delivery of an application in a productionnetwork is how many workstations are required to generate 116 WUs, whichis addressed herein below.

[0075] The following text under step 202 describes a general applicationclassification as it relates to the workload. It is helpful to ask twoquestions when attempting to establish the application's workload withrespect to the number of workstations deployed.

[0076] 1. What category does the application fall in?

[0077] 2. What is the expected workload per hour for the power userwithin the top ten users?

[0078] Typically, users are separated into three classes:

[0079] 1. Casual users

[0080] 2. Standard users

[0081] 3. Data Entry users

[0082] The class of an application user can be identified by the totalamount of time, over one hour, that the power user (i.e., a strong userin the class) spends executing the application. Reasonableclassifications of time for a power user in each class include:

[0083] 1. Casual: The power user executes from 0 to 10 minutes (5minutes mid-point).

[0084] 2. Standard: The power user executes 10 to 30 minutes (20 minutesmid-point)

[0085] 3. Data Entry: The power user executes 30 to 50 minutes (40minutes mid-point)

[0086] The purpose of the application 112 and its usage pattern help toidentify and establish a conservative estimate for the power user. Theaverage number of WUs executed by the power user, in one hour, can beestablished using the application's work unit completion time (WCT). Forexample, if the mid-point is identified as a conservative value for theapplication's power user, and if the application's WCT is two minutes,then:

[0087] 1. In a Casual user type application, the power user will average2.5 WUs per hour.

[0088] 2. In a Standard user type application, the power user willaverage 10 WUs per hour

[0089] 3. In a Data Entry user type application, the power user willaverage 20 WUs per hour

[0090] In the preferred embodiment of the present invention, theapplications 112 tested fell within the standard user class, and mostfell in the general area of the mid-point with some applications on thelow and high limits.

[0091] The following text under step 202 describes estimating a baseworkload. Once the power user's workload is specified, the base workload(BWL) can be established. The BWL is defined by number of WUs per houraveraged over the top-ten user workstations. The BWL is then used toestimate total workload when additional user workstations are added tothe top-ten. Preferably, the application's BWL is not customer specific,which would be difficult to determine, and would risk over-sizing orunder-sizing network capacity requirements.

[0092] To establish the BWL after setting the power user's workload, thetotal average workload for the top-ten users is estimated. Dividing thisvalue by ten gives the BWL, which is the average number of WUs pertop-ten user. The total average workload for the top-ten users can beconservatively established, based on the power user's workload. Thetotal average workload is determined as follows:

[0093] Total Workload=(10×Power User's Workload)/2

[0094] For Example, if the power user averages ten WUs per hour, then:

[0095] Total Workload=(10×10)/2=50 WU's per hour, and

[0096] BWL=50/10=5 WUs per top-ten users.

[0097] The BWL is used to establish the total workload when additionaluser workstations, beyond the top ten, are being deployed. A short cutformula for BWL is:

[0098] BWL=Power User Workload/2.

[0099] The following text under step 202 describes the workload and userworkstation deployment. As additional users beyond the top-ten are addedto the network, the total workload increases in a non-linear manner.Typically, adding ten more users to the top-ten will not double theworkload. Using a conservative estimate for the total workload isimportant when determining the network capacity requirements for aspecified number of workstations. On a LAN, this is normally not anissue, but on a WAN this becomes significant because of the sizedifference between the LAN and the WAN. In the preferred embodiment ofthe present invention, the BWL for the applications tested arereasonably conservative and applicable for all users of the application.Hence, there is a low probability of severe over-estimating orunder-estimating the WAN capacity using the BWL.

[0100] Both the NGE 115 and NLE 116 estimate the total workload asfollows.

[0101] Total Workload=BWL×AWS/LOG(AWS ), wherein

[0102] AWS is the total number of Active Workstations (i.e.,workstations Logged-In), and

[0103] the LOG to the base 10 function produces a gradual reduction inthe growth of total workload as additional users are added. Thislogarithmic function is a very conservative modification to lineargrowth.

[0104] For example, if BWL=5 WUs per hour (this is an average for thetop-ten users), and if AWS=10, then

[0105] Total Workload=5×10/LOG(10), or

[0106] Total Workload=5×10/1=50 WUs per hour (i.e., top-ten userworkload)

[0107] By a second example, if BWL=5 WUs per hour, and if AWS=20, then

[0108] Total Workload=5×20/LOG(20), or

[0109] Total Workload=5×20/1.3=76.9 WUs per hour.

[0110] In contrast to the second example, linear growth would result in100 WUs per hour.

[0111] By a third example, if BWL=5 WUs per hour, and if AWS=200, then

[0112] Total Workload=5×200/LOG(200), or

[0113] Total Workload=5×200/2.3=434.8 WUs per Hour

[0114] In contrast to the third example, linear growth would result in1000 WUs per hour.

[0115] The total number of work hours completed in the one hour periodby all active users is equal to the total workload times theapplication's WCT (WU Completion Time) divided by 60 minutes.

[0116] For example, in the third example of 200 users above, if theWCT=2 minutes, then

[0117] Work Hours (WH)=434.8×2 minutes/60 minutes=14.5 hours of work.

[0118] If the application's concurrency factor (CF) value for thenetwork is equal to or greater than 14.5, then the network can supportthe workload without exceeding the network's threshold capacity.

[0119] The following text under step 202 describes a process forestimating the number of active users. The formula for total workloadrequires the number of active users (i.e., logged-in users). Thefollowing description determines how active user workstations relate tothe total number of deployed workstations. Preferably, the followingpredetermined algorithm is used: if the deployed workstations are lessthan or equal to forty, then the active users equals deployed users.However, if the deployed workstations are greater than forty, then theactive users are gradually reduced. The need to make the gradualreduction is because the number of log-ins does not increase in a linearmanner with an increase in deployed workstations. When the deployedworkstations are greater than forty, the following formula is used.

[0120] Active Users=Deployed Users×1.6/LOG (Deployed Users)

[0121] For example, if Deployed Users equals 100, then

[0122] Active Users=100×1.6/LOG(100)=100×1.6/2=80(i.e., 80%) ActiveUsers.

[0123] In a second example, if Deployed Users equals 1000, then

[0124] Active Users=1000×1.6/LOG(1000)=1000×1.6/3=533 (i.e., 53%) ActiveUsers.

[0125] Preferably, the testing in step 202 is performed in a simulatednetwork environments representing anticipated networks that may use theapplication. Preferably, a manufacturer (or an approved third party) ofan application performs the network load testing on the application inthe simulated production environments to generate the network loadmetrics before the application is shipped to, or sold to the end user,as a computer readable storage medium. The computer readable storagemedium includes, without limitation, a magnetic disk or tape, an opticaldisk such as a computer read only memory (CDROM), a hard drive, and datadelivered over a communication path, such as a phone line, the Internet,a coaxial cable, a wireless link, and the like. The simulations may besimple or complex as the anticipated production environments andanticipate end user considerations require to generate few or many,respectively, network load metrics. The task of generating many networkload metrics may employ various analytical methods, such as statistics,to providing near continuous network load metric points, withoutphysically running the application in each simulated networkenvironment. Further, the many network load metrics may be predeterminedand stored in a database or pre-characterized and represented byequations having input and output variables. Preferably, the networkload metrics, or their representative equations, are incorporated withthe application's set up files. Then, a network administrator uses thenetwork load metrics for one of the simulated network environments thatis closest to the actual production environment. Alternatively, thenetwork administrator may input the characteristics of the actualproduction network environment into an input window, associated with theset up files, and the set up program provides the end user withrecommended network load metrics to be used.

[0126] At step 203, the network load estimator (NLE) 116, shown anddescribed in further detail in FIGS. 3-8, estimates network load for oneor more applications 112 concurrently operating in a production network100 responsive to the network load metrics determined by the NGE 115 foreach of the one or more application.

[0127] The NLE 116 uses the application's network load factor and workunit completion time to estimate how many user workstations can bedeployed on a WAN. The NLE 116 aggregates the metrics for a large numberof different applications 112 allowing it to quickly estimate the WAN'scapacity requirements when deploying more than one type of application.The NLE 116 supports complex WAN topologies and aggregates the effectsof network load and latencies, thus integrating the impact of multipleapplications sharing a WAN. The NLE's inputs come from the NGE 115, andallow a relatively unskilled administrator to work with many differentapplications in a shared production network environment. By contrast,the NGE 115 only specifies the network profile characteristics of asingle application.

[0128] Each application 112 in the NLE 116 contains three network loadparameters. These parameters are obtained from the NGE 115 when theapplication 112 profiling process is completed. The three parametersare:

[0129] 1. Application's CF (Concurrency Factor) specified for apredetermined (e.g., 128 kbits per second) WAN. 2. Application's BWL(Base Workload). 3. Application's WCT (Workload Completion Time).

[0130] To initialize the NLE 116, the administrator configures the WANspeed, selects an application 112, and inputs the number of deployedworkstations. The NLE 116 uses the load parameters for the application112 and the formulas, discussed above, to calculate network capacityused for a specified WAN speed. If more than one application 112 isdeployed the NLE 116 will calculate the total capacity used by all theapplications 112.

[0131] The NLE calculation process is summarized by the followingprocess:

[0132] 1. Calculate the number of active workstations.

[0133] If Deployed Workstations>40, then

[0134] AWS=(Deployed Workstations×1.6)/LOG(Deployed Workstations).

[0135] 2. Calculate the Total Workload.

[0136] Total Workload=BWL×AWS/LOG(AWS)

[0137] 3. Calculate the Total Work Hours.

[0138] Total Work Hours=Total Workload×WCT/60

[0139] 4. Calculate the WAN capacity required (bandwidth usage).

[0140] Capacity Required=Total Work Hours/CF.

[0141] If the Capacity Required>1, then a higher speed WAN is required.

[0142] If the Capacity Required=1, then the bandwidth usage is at theWAN's threshold.

[0143] WAN Bandwidth Usage=Threshold×Capacity Required.

[0144] For example, if CF=20, Total Work Hours=10, and WAN threshold=60%, then WAN Bandwidth Usage=0.5×60%=30%.

[0145] Together steps 202 and 203 describe a method for operating asystem 101 for estimating network load. The system 101 includes the NGE115 and the NLE 116, shown in FIG. 3. The NGE 115 analyzes a networkload for each software application 112 operating in a simulated network100 to determine network load metrics for each software application 112.The NLE 116 estimates a network load for one or more softwareapplications 112 concurrently operating in a network 100 responsive tothe network load metrics of each software application 112.

[0146] Preferably, the NGE 115 analyzes the network load for eachsoftware application 112 while operating in a simulated network, such aswhen a manufacturer of the software application 112 performs theanalysis by the NGE 115. In the manufacturer case, the network loadmetrics for each software application 112 are advantageously provided toa buyer with the software application 112 when purchased by the buyer ofthe software application 112.

[0147] From the perspective of the NGE 115, the NGE 115 is executedwithin a processor 109 (which employs the NGE 115, the NLE 116, and theNLA 117) to estimate a network load for each software application 112operating in a network 100 to determine network load metrics for eachsoftware application 112. The network load metrics are used by a NLE 116for estimating a network capacity for one or more software applications112 concurrently operating in a network 100 responsive to the networkload metrics of each software application 112.

[0148] From the perspective of the NLE 116, the NLE 116 is executedwithin a processor 109 to estimate a network capacity for one or moresoftware applications 112 concurrently operating in a network 100responsive to predetermined network load metrics of each softwareapplication 112. The predetermined network load metrics represent anetwork load for each software application 112 operating in a network100.

[0149] From the perspective of the computer readable storage medium 114,the computer readable storage medium 114 includes an executableapplication, and data representing network load metrics. The executableapplication is adapted to operate in a network 100. The datarepresenting network load metrics associated with the executableapplication 112 is usable in determining a network load representativevalue for the executable application 112 operating in the network 100.Preferably, the network load metrics are adapted to be used by a NLE 116for estimating a network capacity for one or more executableapplications 112 concurrently operating in a network 100 responsive tothe network load metrics.

[0150] The network load metrics preferably include at least one of: (a)an estimated average number of bytes transferred in a time intervalusing the application, (b) an estimated maximum number of bytestransferred in a time interval using the application, (c) an estimatedminimum number of bytes transferred in a time interval using theapplication, (d) a client's average network load factor, (e) an averagedata packet size, (f) an average number of request/response pairs in anapplication transaction, and (g) an average number of bytes transferredbetween a client and at least one server when executing an applicationtransaction. Average values can refer to median, arithmetic mean, orarithmetic mean adjusted to a specified confidence level. The last typeaccounts for the degree of distribution in the samples when calculatingthe mean. The value of the mean is increased if the sample distributionsare large and/or the confidence is high (for example 95%+).

[0151] At step 204, a network load analyzer (NLA) 117, shown anddescribed in further detail in FIGS. 9-12, analyzes the network load forthe one or more application operating in the production network 100 tomeasure the actual network load for the one or more applications.Because the NGE 115 and the NLE 116 both provide an estimated networkload, the NLA 117 measures the actual network load to determine if theestimated network load is accurate. Preferably, the NLA 117 should berun whenever the conditions of the network 100 substantially change.

[0152] At step 205, a determination is made whether the actual networkload measured at step 204 matches the estimated network load determinedin step 202 or step 203. If the determination at step 205 is positive,then the process 200 continues to step 207; otherwise, if thedetermination at step 205 is negative, then the process 200 continues tostep 206. Preferably, the determination at step 205 is performedmanually, but may be performed automatically, if desired.

[0153] At step 206, the estimated network load is modified in step 202or step 203. Preferably, the determination at step 206 is performedmanually, but may be performed automatically, if desired. Preferably,the estimated network load using the NLE 116 for each production networkis modified responsive to the actual network load measured by the NLA117. However, because individual production networks may vary, theestimated network load using the NGE 115 based on the simulated networkis modified responsive to actual network load measurements by the NLA117 from multiple production networks.

[0154] At step 207, the process ends.

[0155]FIG. 3 illustrates a network load estimator (NLE) 116, including amain entry user interface (MEUI) 301, a networked application userinterface (NAUI) 302, and an analytical engine 303, employed by theserver of FIG. 1, in accordance with a preferred embodiment of thepresent invention. The MEUI 301 includes a WAN definition window 304, aWAN topology window 305, and a global results window 306. The NAUI 302includes an application client entry window 307 and a results window308. The MEUI 301 and the NAUI 302 each form portions of the userinterface 107, shown in FIG. 1, and the analytical engine 303 forms aportion of the processor 109, shown in FIG. 1.

[0156] The NLE 116 contains one MEUI 301, and one NAUI 302 for eachdefined application. The number of NAUIs 302 equals the number ofapplication incorporated into the NLE 116. The MEUI 301 feeds data toeach NAUI 302, via connections 309, 310, and 311. The analytical engine303 calculates network performance characteristics using data from eachNAUI 302 that has been configured for analysis, via connection 312. Theanalytical results from the analytical engine 303, unique to eachconfigured application, are displayed in the application's NAUI resultswindow 308, via connection 313. The analytical engine 303 receives datafrom the NAUI 302 for all configured applications and displays combinedresults in the global results window 306 on the MEUI 301, via connection314.

[0157] An advantage of simplicity of the NLE 116 is partially based onthe MEUI 301 and NAUI 302 and type of information a user needs to enterto perform application network analysis and capacity planning. Thesimplicity of using the NAUI 302 is partially based on the informationused to define a NAUI 302 and to incorporate a new application in theNLE 116. The information used to define an NAUI 302 is the result ofprior, in depth testing of the application to profile the application'snetwork characteristics, and to establish mean values of the networkmetrics used for NLE inputs, as shown and described with reference toFIG. 2.

[0158]FIG. 4 illustrates MEUI window field details 400 for the MEUI 301of FIG. 3, in accordance with a preferred embodiment of the presentinvention. The MEUI 301 provides a user interface for a network analystto establish the WAN topology and network characteristics. The MEUI 301includes a WAN definition window 401 (eight columns), a WANconfiguration map 402 (eighteen columns), and a global report window 403(four columns).

[0159] Each row encompassing the three window areas 401, 402, and 403represents one WAN segment. Each WAN segment represents one WAN linebetween two network nodes, unless the number of WAN Lines entry field isused to specify more than one WAN per WAN segment (see field—number ofWAN lines described herein). For example, the WAN segments shown in FIG.4 include a main hospital data center, a first remote clinic, a secondremote clinic, a home dial-in via the Internet, and a remote hospital.

[0160] The WAN definition window 401 is used to define the overall WANperformance characteristics and includes the following eight fields:

[0161] “Type of WAN” field (column 2): This field identifies the basestructure of each WAN links' technology. Preferably, three basestructures are supported including: frame relay (FR), asynchronoustransfer mode (ATM), and Single User (SU) for a line (one user on a dialmodem, a cable modem, or digital subscribe line (DSL) circuit).Preferably, the default value is a blank indicating a multi-userdedicated line (Internet or private line).

[0162] “Number of WAN Lines” (column 3): This field is used to specifythe number of WAN lines in the WAN segment. This field is generally usedto specify number of SU users specified in the type of WAN field.

[0163] “Port Speed or Upstream Speed” (column 4): If the field “Type ofWAN” is set to FR or ATM, then a value in this specifies the port's databit rate (i.e., burst rate). For other WAN types, a value in this fieldspecifies WAN line's upstream data bit rate. This field has unitsrepresented in kbits per second.

[0164] “PVC Speed or Downstream Speed” (column 5): If the field “Type ofWAN” is set to FR or ATM, then a value in this field specifies thecommitted information rate (CIR) data bit rate (i.e., burst rate). Forother WAN types, a value in this field specifies the WAN line's upstreamdata bit rate. This field has units represented in kbits per second.

[0165] “Pre-Existing WAN Utilization Upstream” (column 6): This fieldallows a user to specify the amount a WAN bandwidth capacity that isused by background data traffic on the upstream link. A value in thisfield is a portion of 100% capacity.

[0166] “Pre-Existing WAN Utilization Downstream” (column 7): This fieldallows a user to specify the amount a WAN bandwidth capacity that isused by background data traffic on the downstream link. A value in thisfield is a portion of 100% capacity.

[0167] “WAN Segment Distance” (column 13): This field specifies thephysical distance data traffic must travel between nodes connected bythe WAN segment. This field has units represented in miles.

[0168] “Specified Round Trip Propagation Delay” (column 14): This fieldallows a user to specify an explicit value for round trip propagationdelay. It may be used to supplement or replace the “WAN SegmentDistance” (column 13). This field has units represented inmilli-seconds. This field is useful when estimating propagation delaythrough the Internet.

[0169] Next, referring to the WAN configuration map window 402, thiswindow 402 is used to define the overall WAN physical topology (i.e.,define how the WAN segments are connected with each other to form theoverall WAN structure), and includes the following eighteen fields. “WANConfiguration Map” (columns 15-33): This 18 row x 18 column matrix areais used to define and connect the WAN Segments defined in the WANdefinition window 401. Connecting the WAN segments allows the analysisengine 303 to estimate the cumulative network load on each WAN segment,and to estimate the total network latency delays the data trafficencounters due to multiple hops through the WANs. Each column in thematrix is corresponds to a node (1-18). The nodes are locations whereapplication clients can reside when one or more NAUIs are used toconfigure applications for analysis. Also note that node 1 correspondsto WAN segment 1 (column 12), node 2 corresponds to WAN segments 2, etc.An “X” is placed in entry cells to the right of the node markers (shownas a darkened cell) to specify the downstream WAN segments that connectto the specific node marker. An “X” is placed in entry cells to the leftof the node markers (shown as a darkened cell) to specify the upstreamWAN segments that connect to the specific node marker. For example, FIG.4 shows that node 1 is connected to node 2 via WAN segment 2 and to node3 via WAN Segment 3. It also shows that node 2 is connected to node 4(downstream) via WAN segment 4 and to node 1 (upstream). FIG. 4 alsoillustrates other various WAN connections.

[0170] Next, referring to the global report window 403, the window 403includes the following four fields.

[0171] “Total WAN Utilization Upstream” and “Total WAN UtilizationDownstream” (columns 8 and 9, respectively): These two fields providethe metrics for WAN capacity planning, a useful factor in effectivelymanaging the deployment of new applications. Values specified in thesefields represent a calculated combined bandwidth capacity used by allnetworked applications configured on the WAN topology, including abackground utilization specified in the “Pre-Existing WAN Utilization”fields (columns 7 and 8). Each application is configuration using theNAUI 302.

[0172] “WAN Status” (column 10): This flag field indicates the health ofthe WAN segments. When the total WAN utilization, on a segment, exceedsa preset threshold, the flag “OU” indicates the WAN Segment is “overutilized.” WAN speed must be increased to accommodate the networkedapplications. The “WL” status flag applies only on single user (SU) WANsegments. “WL” indicates that a preset threshold has been exceeded wherea single user “workload” may be unreasonably high. This workload is setusing one of the NAUI windows 500, as shown in FIG. 5. The “OK” statusflag indicates that the total WAN utilization is equal to or below thepreset threshold.

[0173] “Total Concurrent Clients” (column 11): This field identifies thetotal number of application clients concurrently active on each WANsegment. This value is calculated using information from one or moreNAUI windows 500, as shown in FIG. 5, used to configure applications onthe WAN topology. Low values specified in this field indicate that oneor more configured applications are less than network friendly. Specificapplication(s) causing low values can be identified in a specific NAUIwindow 500.

[0174]FIG. 5 illustrates NAUI window field details 500 for the NAUI 302of FIG. 3, in accordance with a preferred embodiment of the presentinvention. Preferably, each application has a NAUI window 500. Each NAUIwindow 500 contains two general window areas including an applicationclient entry window 501 and a networked application results window 502.

[0175] An application included as a member of the NLE 116 has one NAUIwindow 500 used to configure the application onto the WAN topologydefined in the MEUI 301. When a NAUI 302 is defined in the NLE 116,specific network performance parameters are installed in the NAUI 302that specify how the specific application uses network resources whenclients are actively transferring data over WAN lines. These parameters,otherwise called metrics, result from previous testing of theapplication using the NGE 115 to profile the application's networkcharacteristics, as shown and described with reference to FIG. 2. Afterthe parameters have been entered in the NAUI 302, the application isdefined as part of the NLE 116. Preferably, these network parameters arenot viewable or accessible to NLE users.

[0176] The analysis engine 303 uses the NAUI's network parameters, theinformation entered in MEUI 301, and the user input 501 entered in theapplication(s) NAUI window 500 to configure the application(s) on theWAN topology, shown in the MEUI window 400. The analysis engine 303produces an estimate of each application's network load usage (WANutilization), and client network latency delays through the WANtopology. The results, unique to each application, are displayed on theapplication's network application results window 502 in the NAUI window500. The global effects from all configured applications are calculatedby the analytical engine 303 and displayed in the global results window403 in the MEUI window 400.

[0177] The application client entry window 501 is an input area used tospecify the placement of the application's clients on specific networknodes in the WAN topology, and to specify the clients' workload byidentifying the average percentage of total clients concurrentlytransferring traffic on the WAN. The application client entry window 501has the following four fields.

[0178] “WAN Segment Distance” (column 7): This field specifies thephysical distance data traffic must travel between nodes connected bythe WAN segment. This field has units represented in miles.

[0179] “Specified Round Trip Propagation Delay” (column 8): This fieldallows a user to specify an explicit value for round trip propagationdelay. It may be used to supplement or replace the “WAN SegmentDistance” (column 7). This field has units represented in milli-seconds.This field is useful when estimating propagation delay through theInternet.

[0180] “Local Node Client Count” (Column 9): In this field, the useridentifies the total number of clients in the entry fields for the WANnodes to configure the application on the WAN topology specified in theMEUI window 400.

[0181] “Local Node CR” (Column 10): This local node concurrency rate(CR) field specifies the average percentage of total clients, at eachnode, that are concurrently active. The CR field, at the top of column8, is not associated with any specific node, and is the CR that appliesto all clients, unless otherwise entered in column 8. This global CRvalue is overridden by entering a value in the Local Node CR field forselected WAN nodes. The % of use field, also at the top of column 8,specifies the average percentage of time clients spend in a specificapplication. If clients can access other applications, the % of useshould be set to modify the CR values for the application.

[0182] The networked application results window 502 is used to displayanalytical data indicating WAN capacity usage and the client's networklatency delays through the WAN topology. The networked applicationresults window 502 includes the following eight fields.

[0183] “Total WAN Utilization Upstream and Downstream” (%) (Columns 1and 2): The MEUI global report window 403 provides the data to calculatethe values for these fields. These fields show the total WAN utilizationproduced by all configured NAUIs for the background utilizationspecified in the MEUI.

[0184] “Application's WAN Utilization Upstream and Downstream” (%)(columns 3 and 4): The analytical engine 303 calculates and displays theWAN capacity used by the specific application based on the configuredclient count, the CR value, and the WAN topology. This calculationpermits network analysts to quickly identify an application's WAN usagewith the total WAN utilization of all configured applications.

[0185] “WAN Status” (text) (Column 5): This field is also provided bythe MEUI 301, unless an error in client placement occurs. If an erroroccurs, the specific NAUI will flag the WAN status with an “ERROR” flag;otherwise, if no error occurs, the specific NAUI will flag the WANstatus with an “OK” flag.

[0186] “Local Node's Client Concurrency Count” (numeric) (column 11):This field identifies the number of active clients at each node. Theanalytical engine 303 calculates this value using the client count, theCR value, and the WAN topology information.

[0187] “Local Node's Network Latency” (seconds) (column 12): This fieldshows the client's average network delay that application transactionsencounter over the node's upstream WAN connection to the next node.

[0188] “Total Network Latency” (seconds) (column 13): This shows theclients total network latency across the WAN topology that defines aclient's path to/from the application server(s). The NEUI 302 of the NLE116 operates in a functional manner that is similar, but different from,other conventional WAN simulation tools available in the networkindustry. Most WAN simulation tools require the user to establish theWAN topology. This is also done in the NLE 116 using the MEUI 301, butthe process is easier and faster to accomplish with the MEUI 301,because the focus of the NLE 116 is client deployment in a structuredWAN topology for application delivery in an application specificprovider (ASP) environment, wherein the application servers arecentralized in data centers. One area of MEUI 301 that differs fromexisting network analysis products is the global report window field“Total Concurrent Clients.” The analytical engine 303 calculates thisvalue based on information from each pre-configured NAUI 302. The valueof this field relates to the effectiveness of networked application toefficiently use WAN bandwidth capacity. Low values reported in the“Total Concurrent Clients” field indicate that one or more of theconfigured applications may not be properly configured. Too many clientsmay be allocated to the WAN segment and/or the client workload may beset too high. Hence, the “Total Concurrent Clients” field permits theNLE user to easily detect this possible condition, and then review moredetailed information on the application's NAUI 302.

[0189] The functional operation of MEUI 301 and analytical engine 303provide advantages for the NLE 116 over other existing WAN simulationtools used for WAN capacity planning and network latency predictionswhen deploying new networked applications. With existing tools, the usermust define the application's traffic load on the WAN topology for eachapplication. This is accomplished by setting up each of theapplication's traffic patterns, linking this traffic to clients andservers, and then specifying the workload for each traffic pattern.These traffic patterns are unique to each application and must beimported into the tool as network traffic trace files previouslycaptured when the application was being profiled for its networkbehavior. The overall effort is very challenging and time consuming. Inaddition, incorporating a large number of applications into thesimulation tool, as a standard set of applications, to allow a user toselect and configure multiple applications, to perform a WAN capacityplanning study, is not very practical. These existing tools require theuser to be an expert network analyst who has the time to do timeconsuming in-depth network studies. However, the NLE 116 is a moreefficient tool that is easy to use, can incorporate a large set ofselectable applications, and does not require the user to define eachapplication's network traffic patterns. The NLE 116 does not requireexpert network analysts. The NLE 116 supports WAN capacity planning ofmultiple application delivery in the application specific provider (ASP)environment.

[0190] The functional operation of NAUI 302 and analytical engine 303rely on the four metrics, determined in step 202 of FIG. 2. The fourmetrics are used as input to the NLE 116 when the application's NAUI 302is defined making it a member of the set of applications. Networkanalysts preferably perform NAUI definition for NLE 116 revisionupdates. The metrics are then used by the NLE's analytical engine 303and are preferably not seen or manipulated by the NLE user. Theanalytical engine 303 uses these four metrics along with input from theNAUI 302 when a user selects and configures the application forinclusion in a capacity and network latency study.

[0191]FIG. 6 illustrates a process 600 for defining an application NAUI,as shown in FIGS. 3 and 5, in accordance with a preferred embodiment ofthe present invention. The process 600 generally describes a backgroundstep performed by an administrator of the NLE 116 to define anapplication's NAUI to incorporate into the NLE 116.

[0192] At step 601, the process begins.

[0193] At step 602, the administrator selects a new NAUI template.

[0194] At step 603, the administrator enters the name of theapplication.

[0195] At step 604, the administrator input the application's networkprofile metrics.

[0196] At step 605, the administrator saves the NLE 116 to incorporatethe NAUI as a standard member of the application set.

[0197] At step 606, the process ends.

[0198]FIG. 7 illustrates a process 700 for configuring an applicationfor a capacity planning study for the NLE 116 of FIG. 3, in accordancewith a preferred embodiment of the present invention. The process 700 isalso performed by an administrator of the NLE 116.

[0199] At step 701, the process begins.

[0200] At step 702, the administrator selects the application's NAUI.Preferably, the MEUI is setup before selecting an application's NAUI.

[0201] At step 703, the administrator establishes a global clientworkload by inputting a value in the CR field (top of column 8), andestablishes a percentage of use. Normally the user allows the NLE toestablish the CR values which specify the workload. However, there maybe circumstances were the user needs direct control over the CR. Forexample, in FIG. 5 the CR value is set to 20%. The CR value specifiesthe estimated average percentage of total clients that will executeapplication transactions within one-minute time intervals. This globalvalue only applies to the specific NAUI, since other NAUIs may also beconfigured have their own CR value. If the clients spend 100% of theirtime in this application, then the administrator inputs a 100% value inthe percentage of use field, also at the top of column 8. Otherwise, theadministrator inputs the estimated percentage of use that a typicalclient spends using the particular application.

[0202] At step 704, the administrator enters the number of clients oneach WAN node using “Local Node Client Count” fields in column 7 of FIG.5. For example, FIG. 5 shows the following client count: 10 on node 2,15 on node 3, 2 on node 4, and 15 on node 5.

[0203] At step 705, the administrator determines whether specificclients need a CR (i.e., concurrency rate—workload) value different fromthe global CR (e.g., 20% in FIG. 5). If the determination at step 702 ispositive, then the process continues with step 706; otherwise, if thedetermination at step 1005 is negative, then the process continues withstep 707.

[0204] At step 706, the administrator enters the CR value in the fieldunder “Local Node CR” in column 10 of FIG. 5 for the specific client.For example, FIG. 5 shows a CR of 30% for clients on node 2 and 65% fornode 4.

[0205] At step 707, the process ends. The application is now configured.The analytical engine 303 uses this information and the information fromthe MEUI 301 to calculate the application network capacity usage andnetwork latency delay.

[0206]FIG. 8 illustrates a process 800 for reporting analysis results inthe MEUI's global results window 403 in FIG. 4, and in the NAUI'snetwork application results window 502 in FIG. 5 by the analyticalengine 303 of FIG. 3, in accordance with a preferred embodiment of thepresent invention.

[0207] At step 801, the process begins.

[0208] At step 802, the analytical engine 303 receives the application'scapacity usage.

[0209] At step 803, the analytical engine 303 displays the application'sWAN capacity use in the NAUI 500 fields “Application's WAN UtilizationUpstream and Downstream.”

[0210] At step 804, the analytical engine 303 calculates the averageutilization values using the following information: CR, percentage ofuse, node's client count, client count on any downstream connected nodesas specified on the WAN configuration map 402 in the MEUI 400, and thenetwork metric 1 (i.e., the application's load factor which preferablyis not visible to the administrator).

[0211] At step 805, the process ends.

[0212]FIG. 9 illustrates a network load analyzer (NLA) 117, preferablyemployed by the server 101 of FIG. 1, in accordance with a preferredembodiment of the present invention. The NLA 117 generally includes atrace analyzer 901 and a load and concurrency analyzer 902, eachpreferably being implemented in the processor 109 of the server 101. Thetrace analyzer 901 is electrically coupled to the clients 102, 103, and104 via the communication path 106. Each of the trace analyzer 901 andthe load and concurrency analyzer 902 are electrically coupled to theoutput device 110 via connections 904 and 905, respectively. The traceanalyzer 301 communicates with the load and concurrency analyzer 302 viaconnection 903, which is preferably internal to the processor 109.

[0213] Network sniffer trace files (“trace files”) provide externalinput to the NLA 116 via the communication path 106 to capture anapplication's client/server network traffic conversations, preferably,in a real time, production environment. Preferably, the trace files areimported into the trace analyzer by a trace file input element (notshown). Each trace file contains a set of records where each recordcontains information on a unit of data (e.g., a network frame) thatflows over the network 100 between a sender (e.g., the server 101 or theclient 102-104) and a receiver (e.g., the client 102-104 or the server101). The trace file input element also parses and converts the tracefile to the format required by the trace analyzer 901. Preferably, eachtrace file contains thousands of records. A preferred record formatincludes the following four fields:

[0214] Field 1: Relative Time Stamp—Time when the network frame wascaptured on the network.

[0215] Field 2: Sender ID—Network address Internet Protocol (IP)address.

[0216] Field 3: Receiver ID—Network address Internet Protocol (IP)address.

[0217] Field 4: Size of the Network Data Frame—Bytes.

[0218] The trace analyzer 901 processes each of the trace files based onuser control settings. Each trace file is processed separately and eachtrace file has one output file, which is passed to the load andconcurrency analyzer 902, via connection 903. Preferably, each tracefile contains captured network traffic for at least a ten (10) minutetime interval for proper analysis. The output file(s) provide networkloading and user workstation concurrency metrics used by the load andconcurrency analyzer 902.

[0219] The load and concurrency analyzer 902 permits a user/analyst todisplay the raw data from the trace analyzer output trace files and/orcalculate an overall average from all output trace files. Theinformation is presented in the summary results window 308, shown inFIG. 3. The load and concurrency analyzer 902 summarizes all theinformation and displays, via the output device 110, the statisticalresults showing the average network load used by a single client, andthe average number of concurrent clients within specified timeintervals, which are preferably one (1) minute, but may be other userselectable time intervals. The client's network load value specifies theaverage network capacity used when an application's user client isworking with the application. The client's network load value is a firstmetric that has particular value when the user client is communicatingwith the server 101 over a WAN. Preferably, the WAN has a predeterminedthreshold capacity that should not be exceeded to properly supportanticipated application response time for the user. Preferably, thepredetermined threshold is set at seventy percent (70%) of the WAN'stotal capacity. For example, if an application has a client network loadvalue of five percent (5%) on a specific WAN, then fourteen (14)concurrent clients will load the WAN at the predetermined threshold. Theequation that represents this example is: Number of ConcurrentClients=WAN Threshold/Client Network Load value.

[0220] A second metric produced by the load & concurrency analyzer 902is the application's client concurrency rate, which is a ratio ofclients transferring data in specified time intervals, preferably one(1) minute intervals, but may be other user selectable time intervals,to a total number of active clients logged on the application'sserver(s) 101. For example, if the NLA 117 shows that an applicationused over the production network 100 has an average of one hundred (100)clients logged on, and the client concurrency per one (1) minute timeinterval is fourteen (14), then one hundred (100) clients can besupported on a WAN when the client network load value is five percent(5%). The equation that represents this example is: Client Concurrencyrate=Client Concurrency/Number of Clients Logged-In. Hence, thisinformation aids in WAN capacity planning and validates othertools/analysis used to establish an application's network profile beforeproduction delivery.

[0221]FIG. 10 illustrates a trace analyzer process 1000 for each tracefile, performed by the trace analyzer 901 of FIG. 9, in accordance witha preferred embodiment of the present invention. Preferably, each tracefile is analyzed separately and in sequential order.

[0222] At step 1001, the process 1000, otherwise called a method,begins.

[0223] At step 1002, the trace analyzer 901 initializes four controls asfollows.

[0224] 1. Sample Interval time: default value 60 seconds. This valuecontrols the size of the time sample for each measurement.

[0225] 2. Server(s) identification (ID): This ID identifies the NetworkIP address(s) that belong to the application server(s). All otherNetwork IP addresses belong to user clients.

[0226] 3. Low-end Byte Filter: This filter is used to separate clientsthat are sending small amount of data in the sample window. This type ofdata traffic may represent keep-alives or the tail-end traffic of theprevious sample window or front-end traffic just before the start of thenext sample window. This low-end traffic indicates that these clientsare in session (logged-in) with the application's server 101.

[0227] 4. High-end Byte Filter: (default mode is off) If an applicationhas some clients that transfer large blocks of data traffic over thenetwork 100 (i.e., high end clients), these clients can be isolated fromthe standard clients to avoid skewing the analysis. Preferably, clientstransferring data, in any sample window, which exceeds the high-endfilter is eliminated from analysis. To analyze only the high-endclients, turn off the high-end filter and set the low-end filter to thevalue used in the high-end filter to isolate the analysis of thesehigh-end clients.

[0228] At step 1003, the trace analyzer 901 starts the analysis processby selecting a trace file for analysis, responsive to receiving therequired trace files and initializing the four controls.

[0229] At step 1004, the trace analyzer 901 sorts the trace file byclient network IP address. Preferably, the sorting is performed based onthe client's IP address.

[0230] At step 1005, the trace analyzer 901 selects the first samplewindow time (e.g., the default is 0 to 60 seconds).

[0231] At step 1006, the trace analyzer 901 marks as active each filerecord with a relative time stamp value within the sample window time.Each record corresponding to the same client IP address is given samenumerical value. The values start at one and are sequenced until allclients in the window are marked active.

[0232] At step 1007, the trace analyzer 901 saves the number of activeclients. This step identifies the total number of active clients withinthe specified sample window. This step is necessary to prepare for step1009.

[0233] At step 1008, the trace analyzer 901 measures, for each activeclient, the total number of data bytes transferred by each active clientwithin the sample window. Two values are calculated as follows: 1) bytesfrom client to server, and 2) bytes from server to client. If the sum ofthese two values exceeds the low-end, the trace analyzer 901 saves thedata byte values and marks the client as a true concurrent client.

[0234] At step 1009, the trace analyzer 901 calculates and stores thenumber of clients that exceeded the low-end filter within the samplewindow. Only these clients are truly communicating with the applicationserver in the present sample window. This step provides the true valuefor concurrent clients and is used in step 1010.

[0235] At step 1010, the trace analyzer 901 calculates the averagenumber of data bytes transferred per clients (i.e., average workstationbyte count). Two values are calculated and stored as follows: 1) client(i.e., workstation) to server, and 2) server to client (i.e.,workstation).

[0236] At step 1011, the trace analyzer 901 calculates the averageworkstation concurrency by taking the ratio of the number ofcommunicating workstations (determined in step 1009) to the total numberof active workstations (determined in step 1007). This information isstored in the output file, wherein one output file corresponds to eachinput trace file.

[0237] At step 1012, the trace analyzer 901 determines whether the traceanalyzer 901 has reached the end of the trace file. If the traceanalyzer 901 determines that the end of the trace file has been reached,then the process continues to step 1013; otherwise, the processcontinues to step 1014.

[0238] At step 1013, the trace analyzer 901 passes the trace file to theload & concurrency analyzer 902, via connection 903.

[0239] At step 1014, the trace analyzer 901 increments the sample windowtime (e.g., 60 seconds) and the process returns to step 1006 to repeatthe process for a new sample window time.

[0240] At step 1015, the trace analyzer 901 determines whether all ofthe trace files have been processed. If the trace analyzer 116determines that all of the trace files have been processed, then theprocess continues to step 1016; otherwise, the process returns to step1003, wherein a new trace file is selected for processing.

[0241] At step 1016, the process ends.

[0242]FIG. 11 illustrates a single output trace file display 1100,provided by the trace analyzer 901 of FIG. 9, in accordance with apreferred embodiment of the present invention. An analyst selects thisdisplay mode by identifying a specific output trace file. The singleoutput trace file display 1100 is displayed using the output device 110,as shown in FIGS. 1 and 9. The single output trace file display 1100generally includes five sub-windows, otherwise called displays, tables,sections, areas, and the like, including an input area window 1101, abase metrics window 1102, an output control summary window 1103, a WANload metrics window 1104, and an output file record window 1105.

[0243] The input area window 1101 includes an output trace file IDfield, a confidence level field (%) (noted as Input 1), and a WAN speedfield (noted as Input 2). Preferably, the confidence level value is setto a default of 95%. The confidence level value controls the statisticalcalculations with respect to the degree of variance in the measurementscontained in the output trace file records. The analyst may change thisvalue. The WAN speed value is set to a default of 128 kbits per second.The analyst may also change this value to analyze the load metrics forother WAN speeds.

[0244] The base metrics window 1102 includes a concurrent clients (indialog) field, an average active clients field, an average concurrencyrate (CR) % versus active clients field, an average bytes from theclient (i.e., workstation) to the server 101 field, and an average bytesfrom the server 101 to the client (i.e., workstation).

[0245] The output control summary window 1103 includes a sample timeinterval field, a number of samples field, a low-end filter field, and ahigh-end filter field. These are the control settings used when thetrace analyzer 901 processes the input trace file.

[0246] The WAN load metrics window 1104 includes a WAN speed field,statistical data fields for the client (i.e., workstation) to server101, and statistical data fields for the server 101 to client (i.e.,workstation) to server 101. Three statistical mean fields for eachcommunication traffic direction include a load factor (LF) % field, aconcurrency factor (CF) field, and a standard deviation (STD). Twostatistical mean at confidence level fields for each communicationtraffic direction include a load factor (LF) %, and a concurrency factor(CF) field. The WAN load metrics window 1104 displays the statisticalaverage over all of the records in the output trace file displayed inthe output file record window 1105.

[0247] The output file record window 1105 displays one output file foreach input trace file and one record for each sample window time.Preferably, the sample window time is one minute by default, and aninput trace file covers at least a ten (10) minutes duration (i.e., tensample windows). The output file record window 1105 has a record formatincluding the following six fields: Field 1: sample window time. Field2: total number of active clients. Field 3: number of clients in dialog.Field 4: average data bytes client to server. Field 5: average databytes server to client. Field 6: client concurrency rate.

[0248] When a value is set for WAN speed (Input 2 in input area window1101), the trace analyzer 901 calculates the average WAN capacity (WANbandwidth) used by a single application client in both the client toserver direction and the server to client direction. The raw data comesfrom field 4 and field 5 in the output file record window 1105.

[0249] The trace analyzer 901 computes the average value for data bytesclient to server and data bytes server to client. The trace analyzer 901also calculates the standard deviation, which is used when adjusting theaverages to the specified confidence level. The two averages are dividedby the sample interval time to specify the average bytes transferred persecond. This value is divided by the WAN speed expressed in bytes persecond. This last value is multiplied by 100% to determine a valuecalled the client load factor (LF). The client load factor specifies theaverage amount of WAN capacity used when an application client is busyexecuting application tasks.

[0250] Dividing the WAN threshold capacity by the LF normalizes the LF.This value is called the concurrency factor (CF). For example: if theclient's LF is 5% and the WAN's threshold capacity is 70%, the CF is 14.This means that fourteen concurrently active clients will consume theWAN threshold. It also means that the WAN can support 14 work hours in aone-hour time interval. The CF is a useful metric for evaluating anapplication's use of WAN networks. Since the NLA 117 is used to evaluatean application in a production environment, the CF reveals the true oractual network load characteristics. This information can then be usedto validate other analytical tools used to profile applications beforemaking the application generally available (GA). This feedback isadvantageous for proper engineering practice in network configuration.

[0251]FIG. 12 illustrates a complete output trace file summary display1200, provided by the load and concurrency analyzer 902 of FIG. 9, inaccordance with a preferred embodiment of the present invention. Thedisplay 1200 allows a more in-depth analysis by combining all outputtrace files to obtain a more accurate value for the application CFvalue. The display 1200 includes an input window 1201, an output tracefile summary window 1202, and an output window 1203.

[0252] The input window 1201 includes:

[0253] Input 1—WAN speed. Preferably, the WAN speed is a required input,for example, 128 Kbit per second WAN.

[0254] Input 2—WAN threshold capacity. The WAN threshold capacity isautomatically set to a recommended value, for example, a value of 60%for the 128 K WAN, but the value may be changed.

[0255] Input 3—confidence level. Preferably, the default value for theconfidence level is 95%, but may also be changed. The confidence levelaffects the value of the calculated CF in the output window 1203.

[0256] The output trace file summary window 1202 includes an outputtrace file ID field, a sample time field, an enable field, a concurrentclients field, a concurrency rate field, a load factor (LF) client(i.e., workstation) to server field, and a LF server to client (i.e.,workstation) field. Each row corresponds to an output trace file anddisplays the average value of all the sample windows in the file. Thewindow 1202 only shows twelve files, but the window 1202 can bepreferably scrolled to display up to eighty or more files. The load andconcurrency analyzer 302 uses these averages to calculate an overallaverage, which is displayed in the output window 1203. The analyst canremove any particular output trace file from the calculation, if theanalyst believes that the data from the file compromises the overallaverage values. For example, the window 1202 shows the removal of outputtrace files for 12:00 pm and 12:30 pm.

[0257] The output window 1203 includes a concurrent clients (i.e.workstations) field, a concurrency rate (CR) field, a load factor (LF)client (i.e., workstation) to server field, a load factor (LF) server toclient (i.e., workstation) field, a concurrency factor (CF) client(i.e., workstation) to server field, and a concurrency factor (CF)server to client (i.e., workstation) field. The window 1203 displays thefinal output metrics for the application: concurrency rate (CR), loadfactor (LF), and concurrency factor (CF). The CF value is controlled bythe value of the LF, the confidence level, and WAN speed. A higher valueof CF corresponds to a better use of the WAN for the application. Forexample, the window 1203 shows a CF value of 7.76 for a 128 K WAN speed,in the direction of server to client (i.e., workstation), with a 95%Confidence Level. The window 1203 also shows that the average number ofconcurrent clients (i.e., workstations) is 10.4 and the CR is 4.9%. Thisindicates that the total number of clients logged-in was 212(i.e.,4.9%×212=10.4). However, the 128 K WAN with a CF value of 7.76 can onlysupport 7.76 concurrent clients. With a concurrency rate of 4.9%, themaximum number of logged-in clients is 158.

[0258] In summary of the preferred embodiment of the present invention,the network guidelines estimator (NGE) 115 estimates network loadmetrics for each software application 112 operating in a simulatenetwork to determine network load metrics for each software application112.

[0259] The network load estimator (NLE) 116 estimates a network load forone or more software applications concurrently operating in a networkresponsive to the network load metrics of each software application. TheNLE 116 provides an easy to use network simulation tool used to size thenetwork capacity and network latency of WANs for a large number ofnetworked applications. Users of the NLE 116 do not need any particularknowledge or experience with complex network simulation tools thatrequire hours to setup and run. The user interface is straightforwardand easily understood. Analysis results are performed in minutes insteadof hours. Performance issues are presented in real-time allowing a userto make fast decisions and changes to sizing the WAN for properperformance. Hence, the NLE 116 permits quick and reliable sizing ofWANs when deploying one or more applications simultaneously.

[0260] The NLA 117 receives input from network sniffer trace files thatcontain captured data traffic generated by workstations executing anapplication in a preferably live production environment. The NLA 117 isthen used to digest one or more trace files (each file preferably havingfifteen minutes of traffic activity) to produce the application'snetwork capacity profile. The NLA 117 performs analysis of the tracefile data, filtered in each sample time window (preferably 60 secondsintervals). Each time window shows the total traffic load, the totalnumber of clients producing traffic, the average traffic load per client(average WAN bandwidth per client), and the client concurrency rate(client workload). All window measurement over all trace files areaveraged using mean, variance and confidence level to establish theapplication's capacity profile metrics: 1) Client Load Factor (i.e.,bandwidth usage) and 2) Client Concurrency Rate (i.e., workload). Thesetwo metrics are used to validate metrics estimated by the NGE 115 thatis used to profile the application 112 before general availabilityrelease. Since NLA application analysis is preferably made using trafficfrom a live application, the NLA metrics provide an accurate and easymethod to size a WAN when adding new clients 102-104 to the application112. The NLA metrics are then used to tune the NLE 116 and/or the NGE115.

[0261] Hence, while the present invention has been described withreference to various illustrative embodiments thereof, the presentinvention is not intended that the invention be limited to thesespecific embodiments. Those skilled in the art will recognize thatvariations, modifications, and combinations of the disclosed subjectmatter can be made without departing from the spirit and scope of theinvention as set forth in the appended claims.

What is claimed is:
 1. A system for estimating network load comprising:a network guidelines estimator for estimating a network load for eachsoftware application operating in a network to determine network loadmetrics for each software application; and a network load estimator forestimating a network load for one or more software applicationsconcurrently operating in a network responsive to the network loadmetrics of each of the one or more software applications.
 2. A systemaccording to claim 1, wherein the network guidelines estimator estimatesthe network load for each software application while operating in a testnetwork.
 3. A system according to claim 2, wherein a distributor of thesoftware application performs the estimate by the network guidelinesestimator.
 4. A system according to claim 2, wherein a manufacturer ofthe software application performs the estimate by the network guidelinesestimator.
 5. A system according to claim 1, wherein the network loadmetrics for each software application are provided with the softwareapplication to a buyer when purchased from a seller of the softwareapplication.
 6. A system according to claim 1 further comprising: anetwork load analyzer for determining an actual network load for one ormore software applications concurrently operating in a productionnetwork.
 7. A system according to claim 6 wherein the network loaddetermined at least one of the network guidelines estimator and thenetwork load estimator is modified responsive to the actual network loaddetermined by the network load analyzer.
 8. A network guidelinesestimator comprising: a processor for estimating a network load for eachsoftware application operating in a network to determine network loadmetrics for each software application, wherein the network load metricsare used by a network load estimator for estimating a network load forone or more software applications concurrently operating in a networkresponsive to the network load metrics of each software application. 9.A network load estimator comprising: a processor for estimating anetwork capacity for one or more software applications concurrentlyoperating in a network responsive to predetermined network load metricsof each software application, wherein the predetermined network loadmetrics represent a network load for each software application operatingin a network.
 10. Computer readable product comprising: an executableapplication adapted to operate in a network; and data representingnetwork load metrics associated with said executable application andusable in estimating a network load representative value for saidexecutable application operating in the network.
 11. Computer readableproduct according to claim 10, wherein said network load metrics areadapted to be used by a network load estimator for estimating a networkload for one or more executable applications concurrently operating in anetwork responsive to said network load metrics.
 12. Computer readableproduct according to claim 10, wherein said network load metricscomprise at least one of: (a) an estimated average number of bytestransferred in a time interval using said application, (b) an estimatedmaximum number of bytes transferred in a time interval using saidapplication, (c) an estimated minimum number of bytes transferred in atime interval using said application, (d) a client's average networkload factor, (e) an average data packet size, (f) an average number ofrequest/response pairs in an application transaction, and (g) an averagenumber of bytes transferred between a client and at least one serverwhen executing an application transaction.
 13. Computer readable productaccording to claim 12, wherein said average number comprises at leastone of, (a) median, (b) arithmetic mean and (c) arithmetic mean adjustedin response to a confidence level.
 14. A system for estimating networkbandwidth capacity used by at least one of a plurality of concurrentlyoperating executable applications, comprising: an interface processorfor receiving user entered parameters including, a first parameter foruse in identifying a number of user workstations employing a firstapplication in a system configuration, and a second parameter for use inidentifying an average proportion of said number of user workstationsconcurrently executing said first application; and a data analyzer fordetermining data for use in identifying a proportion of said networkbandwidth capacity used by said number of user workstations concurrentlyexecuting said first application based on said first and secondparameters as well as a predetermined parameter.
 15. A system accordingto claim 14, wherein said average proportion comprises at least one of,(a) an arithmetical mean proportion and (b) an arithmetical meanproportion adjusted in response to a standard deviation or variancemeasure.
 16. A system according to claim 14, wherein said arithmeticalmean proportion adjusted in response to said standard deviation or saidvariance measure is also adjusted in response to a number of samplesinvolved.
 17. A system according to claim 14, wherein said userworkstations comprise devices capable of operating said firstapplication and consuming network bandwidth capacity including at leastone of, (a) computers, (b) processing devices, (c) processing devicescommunicating using wireless communication, (d) phone devices and (e)personal digital assistant devices.
 18. A system according to claim 14,wherein said second parameter comprises said number of user workstationsconcurrently executing said first application.
 19. A system according toclaim 14, wherein said predetermined parameter is a load factoridentifying an average network bandwidth capacity used in transferringdata, from a user workstation executing said first application, to aremote device via said network.
 20. A system according to claim 14,wherein said interface processor receives user entered parametersincluding, a first parameter for use in identifying a number of userworkstations employing first and second applications in a systemconfiguration, a second parameter for use in identifying an averageproportion of said number of user workstations concurrently executingsaid first application; a third parameter for use in identifying anaverage proportion of said number of user workstations concurrentlyexecuting said second application; and said data analyzer determinessaid data for use in identifying said proportion of said networkbandwidth capacity used by said number of user workstations concurrentlyexecuting said first and second applications based on said first, secondand third parameters as well as predetermined parameters.
 21. A systemaccording to claim 20, wherein said data analyzer derives said data foruse in identifying said proportion of said network bandwidth capacityused by said number of user workstations concurrently executing saidfirst and second applications by summing, (a) estimated networkbandwidth capacity used by said number of user workstations concurrentlyexecuting said first application together with (b) estimated networkbandwidth capacity used by said number of user workstations concurrentlyexecuting said second application.
 22. A system according to claim 20,wherein said data analyzer provides data for use in separatelyidentifying, said proportion of said network bandwidth capacity used bysaid number of user workstations concurrently executing said firstapplication and said proportion of said network bandwidth capacity usedby said number of user workstations concurrently executing said secondapplication.
 23. A system according to claim 20, wherein saidpredetermined parameters comprise, a first load factor identifying anaverage network bandwidth capacity used in transferring data via saidnetwork from a user workstation executing said first application to aremote device, and a second load factor identifying an average networkbandwidth capacity used in transferring data via said network from auser workstation executing said second application to a remote device.24. A system according to claim 20, wherein said data for use inidentifying said proportion of said network bandwidth capacity used bysaid number of user workstations concurrently executing said firstapplication comprises at least one of, (a) a figure representing anestimated proportion of said network bandwidth capacity and (b) a figureidentifying network bandwidth capacity used.
 25. A user interface systemsupporting user estimation network bandwidth capacity used by at leastone of a plurality of concurrently operating executable applications,comprising the steps of: initiating generation of at least one displayimage supporting user entry of, a first parameter for use in identifyinga number of user workstations employing a first application in a systemconfiguration, and a second parameter for use in identifying an averageproportion of said number of user workstations concurrently executingsaid first application; an icon for initiating determination of data foruse in identifying a proportion of said network bandwidth capacity usedby said number of user workstations concurrently executing said firstapplication based on said first and second parameters as well as apredetermined parameter and for initiating display of said data for usein identifying said proportion of said network bandwidth capacity viasaid at least one display image.
 26. A system for estimating averagedelay in network response attributable to an individual application of aplurality of concurrently operating executable applications, comprising:a data analyzer for determining an estimate of average delay in networkresponse attributable to an individual application based on parameters,associated with said individual application, including, a firstparameter representing an estimated average number of request andresponse message pairs occurring during operation of said individualapplication, a second parameter representing an estimated average datatraffic size from a user workstation to at least one server, a thirdparameter representing an estimated average data traffic size from saidat least one server to said user workstation, a fourth parameterrepresenting an estimated average data traffic number of packets fromsaid user workstation to said at least one server, and a fifth parameterrepresenting an estimated average data traffic number of packets fromsaid at least one server to said user workstation; and an interfaceprocessor for processing said determined estimate of average delay insaid network response for communication to a device in response to usercommand.
 27. A system according to claim 26, wherein said averagecomprises at least one of, (a) an arithmetical mean and (b) anarithmetical mean adjusted in response to a standard deviation orvariance measure.
 28. A system according to claim 26, wherein said userworkstation comprises a number of user workstations concurrentlyexecuting said individual application.
 29. A system according to claim26, wherein said estimated average data traffic size is measured inbytes.
 30. A system according to claim 26, wherein said estimatedaverage data traffic number of packets comprises an estimated averagedata traffic number of data frames.
 31. A method for estimating networkbandwidth capacity used by at least one of a plurality of concurrentlyoperating executable applications, comprising the steps of: receivinguser entered parameters including, a first parameter for use inidentifying a number of user workstations employing a first applicationin a system configuration, and a second parameter for use in identifyingan average proportion of said number of user workstations concurrentlyexecuting said first application; and determining data for use inidentifying a proportion of said network bandwidth capacity used by saidnumber of user workstations concurrently executing said firstapplication based on said first and second parameters as well as apredetermined parameter.